package com.gxc.service;

import com.gxc.dto.AddUserParamsDto;
import com.gxc.dto.FindAllUserParamsDto;
import com.gxc.entity.User;
import org.springframework.data.domain.Page;
import org.springframework.validation.BindingResult;

import javax.validation.Valid;
import java.util.List;

/**
 * @author GongXincheng
 * @since 2019-08-08 14:56
 */
public interface UserService {

    /**
     * 添加测试数据.
     *
     * @param userList 用户列表
     * @return Boolean
     */
    Boolean addTestUser(List<User> userList);

    /**
     * 添加用户.
     *
     * @param paramsDto 用户信息.
     * @return 更新/新增后的User
     */
    User addUser(AddUserParamsDto paramsDto);

    /**
     * 根据id查询用户信息.
     *
     * @param id 用户id
     * @return 用户信息
     */
    User findById(Integer id);

    /**
     * 多条件查询.
     *
     * @param paramsDto 查询条件
     * @return 用户列表.
     */
    Page<User> findAll(FindAllUserParamsDto paramsDto);

    /**
     * 测试 Valid
     *
     * @param dto           dto
     * @return Object
     */
    Object validToService(AddUserParamsDto dto);
}
